function getPostedBody(req, asObject = false) {
    return new Promise((resolve, reject) => {
        // 定义了一个post变量，用于暂存请求体的信息
        let postedBody = "";

        // 通过req的data事件监听函数，每当接受到请求体的数据，就累加到post变量中
        req.on("data", function (chunk) {
            postedBody += chunk;
        });

        // 在end事件触发后，通过querystring.parse将post解析为真正的POST请求格式，然后向客户端返回。
        req.on("end", function () {
            asObject ? resolve(JSON.parse(postedBody)) : resolve(postedBody);
        });

        req.on("error", function (err) {
            reject(err);
        });
    });
}

function respondSuccess(res, msg, data) {
    res.end(
        JSON.stringify({
            msg,
            data,
        })
    );
}

function respondErr(res, msg, err) {
    res.end(
        JSON.stringify({
            msg,
            err,
        })
    );
}

module.exports = {
    getPostedBody,
    respondSuccess,
    respondErr,
};
